package com.vecspace.web.freemarker;

import java.util.concurrent.ConcurrentHashMap;

/**文件内容缓存（用于缓存模版文件，JS文件等固定的文件内容）
 * @author: wanghua
 */
public class FileContentCache {
	ConcurrentHashMap<String,String> map = new ConcurrentHashMap<>(1024);
	private static boolean useCache = true;
	
	public boolean isUseCache() {
		return useCache;
	}
	public void setUseCache(boolean useCache) {
		FileContentCache.useCache = useCache;
	}

	/**获取缓存中的文件内容*/
	public String get(String key){
		String s = map.get(key);
		return s;
	}
	
	/**将文件内容放到缓存中
	 * 
	 * 功能描述：
	 * @param key 文件全名（含路径，路径用于区分同名文件）
	 * @param value 文件内容
	 * @author: wanghua
	 */
	public void put(String key, String value){
		if(!useCache)return;
		map.put(key, value);
	}
	
	public void clear(){
		map.clear();
	}
	
	private static FileContentCache _defaultInstance = new FileContentCache();
	public static FileContentCache DEFAULT(){
		return _defaultInstance;
	}
}
